<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>综合案例之新闻</title>

    <style>
        p {
            text-align: left;
            text-indent: 2em;
        }

        div,h1,hr {
            width: 800px;
            text-align: center;
            margin: 0 auto;
        }

        h3 {
            text-align: left;
        }

        span {
            line-height: 3em;
        }

        a {
            text-decoration: none;
        }

        #time {
            color: #808080;
        }

        #media {
            color: skyblue;
            font-weight: 600;
        }

        img+p {
            text-indent: 0em;
            font-size: 12px;
            text-align: center;
        }
    </style>
</head>
<body>
    <div>
        <h1>《自然》评选改变科学的10个计算机代码项目</h1>
        <span id="time">2099年02月02日02:02</span>
        <span id="media">新浪科技</span>
        <a href="#">收藏本文</a>
        <p>网页内容参考自：https://finance.sina.com.cn/tech/2021-01-26/doc-ikftpnny1854418.shtml</p>
        <hr>
        <p>
            2019 年，事件视界望远镜团队让世界首次看到了黑洞的样子。不过，研究人员公布的这张发光环形物体的图像并不是传统的图片，而是经过计算获得的。利用位于美国、墨西哥、智利、西班牙和南极地区的射电望远镜所得到的数据，研究人员进行了数学转换，最终合成了这张标志性的图片。研究团队还发布了实现这一壮举所用的编程代码，并撰文记录这一发现，其他研究者也可以在此基础上进一步加以分析。
        </p>
        <img src="https://img.ithome.com/newsuploadfiles/2021/1/20210126_085203_726.jpg" alt="引用图片">
        <p>
            ▲如果没有能够解决研究问题的软件，以及知道如何编写并使用软件的研究人员，一台计算机无论再强大，也是毫无用处的
        </p>
        <p>
            这种模式正变得越来越普遍。从天文学到动物学，在现代每一项重大科学发现的背后，都有计算机的参与。美国斯坦福大学的计算生物学家迈克尔 · 莱维特因 “为复杂化学系统创造了多尺度模型”与另两位研究者分享了 2013 年诺贝尔化学奖，他指出，今天的笔记本电脑内存和时钟速度是他在 1967 年开始获奖工作时实验室制造的计算机的 1 万倍。“我们今天确实拥有相当可观的计算能力，”他说，“问题在于，我们仍然需要思考。”
        </p>
        <p>
            如果没有能够解决研究问题的软件，以及知道如何编写并使用软件的研究人员，一台计算机无论再强大，也是毫无用处的。如今的科学研究从根本上已经与计算机软件联系在一起，后者已经渗透到研究工作的各个方面。近日，《自然》（Nature）杂志将目光投向了幕后，着眼于过去几十年来改变科学研究的关键计算机代码，并列出了其中 10 个关键的计算机项目。
        </p>
        <img src="https://n.sinaimg.cn/tech/transform/40/w630h210/20210126/ebbb-kicwvzq5003890.jpg" alt="引用图片">
        <p>
            ▲这台 CDC 3600 型计算机于 1963 年交付给位于科罗拉多州博尔德的国家大气研究中心，研究者在 Fortran 编译器的帮助下对其进行了编程
        </p>
        <h3>语言先驱：Fortran 编译器（1957 年）</h3>
        <p>
            最初的现代计算机并不容易操作。当时的编程实际上是手工将电线连接成一排排电路来实现的。后来出现了机器语言和汇编语言，允许用户用代码为计算机编程，但这两种语言都需要对计算机的架构有深入的了解，使得许多科学家难以掌握。
        </p>
        <p>
            20 世纪 50 年代，随着符号语言的发展，特别是由约翰 · 巴克斯及其团队在加州圣何塞的 IBM 开发的 “公式翻译”语言 Fortran，这种情况发生了变化。利用 Fortran，用户可以用人类可读的指令来编程，例如 x = 3 + 5。然后由编译器将这些指令转换成快速、高效的机器代码。
        </p>
        <p>
            不过，这一过程仍然很不容易。早期的程序员使用打孔卡来输入代码，而复杂的模拟可能需要数万张打孔卡。尽管如此，新泽西州普林斯顿大学的气候学家真锅淑郎（Syukuro Manabe）还是指出，Fortran 让非计算机科学家也能编程，“这是我们第一次能够自己给计算机编程”。他和同事们利用这种语言开发的气候模型是最早取得成功的模型之一。
        </p>
        <p>
            Fortran 发展至今已经到了第八个十年，它仍然广泛应用于气候建模、流体动力学、计算化学等学科，这些学科都涉及到复杂线性代数并需要强大的计算机来快速处理数字。Fortran 生成的代码速度很快，而且仍然有很多程序员知道如何编写。古早的 Fortran 代码库仍然活跃在世界各地的实验室和超级计算机上。“以前的程序员知道他们在做什么，”美国海军研究院的应用数学家和气候模型师弗兰克 · 吉拉尔多说，“他们非常注重内存，因为他们拥有的内存非常少。”
        </p>
        <h3>信号处理器：快速傅立叶变换（1965）</h3>
        <p>
            当射电天文学家扫描天空时，他们捕捉到的是随时间变化的复杂信号杂音。为了理解这些无线电波的本质，他们需要看到这些信号作为频率的函数时是什么样的。一种名为 “傅里叶变换”的数学过程可以帮到研究人员，但它的效率很低，对于一个大小为 N 的数据集需要 N^2 次计算。
        </p>
        <img src="https://n.sinaimg.cn/tech/transform/249/w630h419/20210126/2aae-kicwvzq5006315.jpg" alt="引用图片">
        <p>
            ▲默奇森宽视场阵列的部分夜景，这是一个建于澳大利亚西部的射电望远镜阵列，使用快速傅里叶变换来收集数据
        </p>
        <p>
            1965 年，美国数学家詹姆斯 · 库利和约翰 · 杜基想出了一种加速该过程的方法。快速傅里叶变换（FFT）通过递归（一种通过重复将问题分解为同类的子问题而解决问题的编程方法）将计算傅里叶变换的问题简化为 N log2（N）步。随着 N 的增加，速度也会提高。对于 1000 个点，速度提升大约是 100 倍；100 万个点则是 5 万倍。
        </p>
        <p>
            这个 “发现”实际上是一个再发现，因为德国数学家高斯在 1805 年就对此进行了研究，但他从未发表过。而詹姆斯 · 库利和约翰 · 杜基做到了，他们开启了傅里叶变换在数字信号处理、图像分析、结构生物学等领域的应用，成为应用数学和工程领域的重大事件之一。FFT 在代码中的应用已有很多次，近年一个流行的方案是 FFTW，被认为是世界上最快的 FFT。
        </p>
        <p>
            保罗 · 亚当斯是加州劳伦斯伯克利国家实验室分子生物物理学和综合生物成像部门的主任，他回忆称，当他在 1995 年改进细菌蛋白质凝胶的结构时，即使使用 FFT 和超级计算机，也需要 “很多个小时，甚至数天”的计算。“如果在没有 FFT 的情况下尝试做这些，我不知道在现实中应该如何做到，”他说，“那可能要花很长时间。”
        </p>

        <h3>分子编目：生物数据库（1965 年）</h3>
        <p>
            数据库是当今科学研究中不可或缺的组成部分，以至于人们很容易忘记它们也是由软件驱动的。过去的几十年中，数据库资源的规模急剧膨胀，影响了许多领域，但或许没有哪个领域的变化会比生物学领域更引人注目。
        </p>
        <img src="https://n.sinaimg.cn/tech/transform/749/w630h919/20210126/5b13-kicwvzq5007959.jpg" alt="引用图片">
        <p>
            ▲蛋白质数据库 Protein Data Bank 拥有超过 17 万个分子结构的档案，包括这种细菌的 “表达子”（expressome），其功能是结合 RNA 和蛋白质合成的过程
        </p>
        <p>
            今天，科学家所用的庞大基因组和蛋白质数据库源于美国物理化学家玛格丽特 · 戴霍夫的工作，她也是生物信息学领域的先驱。20 世纪 60 年代初，当生物学家们致力于梳理蛋白质的氨基酸序列时，戴霍夫开始整理这些信息，以寻找不同物种之间进化关系的线索。她与三位合著者于 1965 年发表了《蛋白质序列和结构图谱》，描述了当时已知的 65 种蛋白质的序列、结构和相似性。历史学家布鲁诺 · 斯特拉瑟在 2010 年写道，这是第一个 “与特定研究问题无关”的数据集，它将数据编码在打孔卡中，这使得扩展数据库和搜索成为可能。
        </p>
        <p>
            其他 “计算机化”的生物数据库紧随其后。蛋白质数据库 Protein Data Bank 于 1971 年投入使用，如今详细记录了超过 17 万个大分子结构。加州大学圣地亚哥分校的进化生物学家拉塞尔 · 杜利特尔在 1981 年创建了另一个名为 Newat 的蛋白质数据库。1982 年，美国国立卫生研究院（NIH）与多个机构合作，成立了 GenBank 数据库，这是一个开放获取的 DNA 序列数据库。
        </p>
        <p>
            这些数据库资源在 1983 年 7 月证明了其存在价值。当时，由伦敦帝国癌症研究基金会蛋白质生物化学家迈克尔 · 沃特菲尔德领导的团队，与杜利特尔的团队各自独立报道了一个特殊的人类生长因子序列与一种导致猴子出现癌症的病毒蛋白质之间的相似性。观察结果显示了一种病毒诱发肿瘤机制——通过模仿一种生长因子，病毒会诱导细胞不受控制地生长。美国国家生物技术信息中心（NCBI）前主任詹姆斯 · 奥斯特尔说：“这一结果让一些对计算机和统计学不感兴趣的生物学家头脑里灵光一闪：我们可以通过比较序列来了解有关癌症的一些情况。”
        </p>
        <p>
            奥斯特尔还表示，这一发现标志着 “客观生物学的到来”。除了设计实验来验证特定的假设，研究人员还可以挖掘公共数据集，寻找那些实际收集数据的人可能从未想到的联系。当不同的数据集连接在一起时，这种力量就会急剧增长。例如，NCBI 的程序员在 1991 年通过 Entrez 实现了这一点；Entrez 是一个可以让研究人员在 DNA、蛋白质和文献之间自由检索和比对的工具。
        </p>
        <h3>预测领先者：大气环流模式（1969 年）</h3>
        <p>
            在第二次世界大战结束时，计算机先驱约翰 · 冯 · 诺伊曼开始将几年前用于计算弹道轨迹和武器设计的计算机转向天气预测问题。真锅淑郎解释道，在那之前，“天气预报只是经验性的”，即利用经验和直觉来预测接下来会发生什么。相比之下，冯 · 诺伊曼的团队 “试图基于物理定律进行数值天气预测”。
        </p>
        <p>
            新泽西州普林斯顿的美国国家海洋和大气管理局（NOAA）地球物理流体动力学实验室的建模系统部门负责人 Venkatramani Balaji 表示，几十年来，人们已经熟知这些方程式。但早期的气象学家无法实际解决这些问题。要做到这一点，需要输入当前的条件，计算它们在短时间内会如何变化，并不断重复。这个过程非常耗时，以至于在天气状况实际出现之前还无法完成数学运算。1922 年，数学家刘易斯 · 弗莱 · 理查森花了几个月时间计算德国慕尼黑的 6 小时预报。根据一段历史记载，他的结果是 “极不准确的”，包括 “在任何已知的陆地条件下都不可能发生的”预测。计算机使这个问题变得很容易解决。
        </p>
        <p>
            20 世纪 40 年代末，冯 · 诺伊曼在普林斯顿高等研究院建立了天气预报团队。1955 年，第二个团队——地球物理流体动力学实验室——开始进行他所谓的 “无限预测”，也就是气候建模。
        </p>
        <p>
            真锅淑郎于 1958 年加入气候建模团队，开始研究大气模型；他的同事柯克 · 布莱恩将这一模型应用在海洋研究中。1969 年，他们成功将二者结合起来，创造了《自然》杂志在 2006 年所说的科学计算 “里程碑”。
        </p>
        <p>
            今天的模型可以将地球表面划分为一个个 25 公里 ×25 公里的正方形，并将大气层划分为数十层。相比之下，真锅淑郎和布莱恩的海洋 - 大气联合模型划分的面积为 500 平方公里，将大气分为 9 个层次，只覆盖了地球的六分之一。尽管如此，Venkatramani Balaji 表示，“这个模型做得很好”，使研究团队第一次能够通过计算机预测二氧化碳含量上升的影响。
        </p>
        <h3>
            数字运算机：BLAS（1979 年）
        </h3>
        <p>
            科学计算通常涉及到使用向量和矩阵进行相对简单的数学运算，但这样的向量和矩阵实在太多了。但在 20 世纪 70 年代，还没有一套普遍认可的计算工具来执行这些运算。因此，从事科学工作的程序员会将时间花在设计高效的代码来进行基本的数学运算，而不是专注于科学问题。
        </p>
        <img src="https://n.sinaimg.cn/tech/transform/301/w630h471/20210126/1a97-kicwvzq5013390.jpg" alt="引用图片">
        <p>
            ▲加州劳伦斯利弗莫尔国家实验室的 Cray-1 超级计算机。在 BLAS 编程工具于 1979 年问世之前，并没有线性代数标准可供研究人员在 Cray-1 超级计算机等机器上工作
        </p>
        <p>
            编程世界需要一个标准。1979 年，这样的标准出现了：基本线性代数程序集（Basic Linear Algebra Subprograms，简称 BLAS）。这是一个应用程序接口（API）标准，用以规范发布基础线性代数操作的数值库，如矢量或矩阵乘法。该标准一直发展到 1990 年，为向量数学和后来矩阵数学定义了数十个基本例程。
        </p>
    </div>
</body>
</html>